Берем основную модель, возможно, вообще без мяса, только с гусеницами, но с кучей точек крепления. Также берем кучу моделей-аттачметов, представляющих собой эти самые пушки, корпуса и все прочее. При выборе характеристик модели через диалог или интерфейс соответственно создаем на основной модели эффекты-аттачменты, будет собрана техника. Такие штуки, как двигатель и прочие невидные извне элементы будут скорее входить в математическую модель юнита, но это также можно запилить. Название танка - сразу не скажу, есть ли триггер на смену, но на таблице рекордов можно отобразить что угодно.
2.Тоже можно.
Создаем погодный в определенной местности и делаем два триггера для контроля входа-выхода юнитов из нее. На искомых юнитов применяем нужные способности - и все готово.
Здесь чуть сложнее: нужно постоянно проверять тип местности под юнитом, но тоже можно. Проверка на ограждения тоже может бить сделана.
4.Это уже интереснее. Видел раньше подобное в играх. При каждой атаке юнита случайным образом наносим или не наносим доп. урон, эффект горения, кидаем спелл на цель в зависимости от теоретического места попадания атаки.
5.И это можно. Но нужно писать нестандартную систему Альянса. Но через триггеры и JASS все можно...
Продажа техники - лучше через способность, что бы кидать ее на понравившегося юнита, не стоит покупать кота в мешке. Стоимость должна зависеть от технического уровня юнита, его текущего состояния (мертвый танк попадет вам бесплатно, сами чините!), если он был модернизован дополнительно, то это тоже входит в стоимость. Разрешение на продажу делаем аналогично.
Это легко через Custom Value и переменние.
Как ты понял, все что ты предложил создать можно, но на это нужно потрать хороший кусок времени. Остается пожелать тебе удачи над созданием проекта - мне идея уже нравится.
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
действие проиграть звук и указываешь твою фразу
выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
darkowlom, точно, я несколько лет назад тоже пробовал эту модель - так же исчезала при определённом AoA. KaneThaumaturge, посмотри 38 комментарий в этой теме, может быть поможет.
nixsam, Насколько я помню у варкрафта два типа и соответственно две модели клиффов - грязь и камень, остальные отличаются только текстурой. Отсюда вытекает что ты можешь заменить две модели и потом только текстуры. (Не помню точно, могу ошибаться))
Если у вас есть аккаунт в соц. сети ВКонтакте, тогда вы можете объединить его с вашим аккаунтом на XGM. Это делается на этой страничке xgm.guru/auth-settings
или могу вручную сбросить пароль отправив новый на почту указанную в профиле.
Nyanta, для начала дебаг сделать как написано в статье
Сделал. Триггер работает как нужно. При входе всегда пишет "Вход!", при выходе - "Выход!". Порядок текста не меняется.
В общем, проблема, почему-то, была в названии анимации. Открыл модель через MdlVis и назвал анимации "родными" словами Stand, Walk, Death. Стало работать как надо.
Спасибо Rare за Rare:
ставь скорость анимации на 0%
И nvc123 за то, что натолкнул на мысль этим) nvc123:
Как я понимаю - проблема в не заданном начальном состоянии(а может быть и нет, я не уверен). Информация о рескейлинге есть на момент начала анимации(599 кадр), а информация о используемом материале (повороте модели в последствии) появляется только на 600. Вероятно инструкции о том что делать с моделью определяются по ходу требования(а не хранятся в файле самой модели, как я думал) и на основании данных по требуемому кадру. Нельзя так просто взять и вникнуть в mdx формат. А, впрочем, я могу ошибаться.
Сделал анимации не пересекающимися (0-399 "stand", 400-599 "death", 600-799 "birth"), изменение скейла
Как это сделано у меня в страннике:
Есть области, 1 для каждого НПС,
Есть группа, куда записаны все НПС.
Есть таймер с периодичностью в 3 секунды. Каждый раз идет проверка. Проверятся, что НПС состоит в группе и если случайное число 0-100 меньше и равно 50, то НПС двигается в случайную точку в своей области.
Когда герой начинает говорить, НПС останавливает свой приказ, поворачивается к герою и удаляется из группы, чтобы когда таймер сработал он не убежал.
Соответственно когда разговор окончен, НПС снова добавляется в эту группу.
Все просто.
Отредактировать модель и переименовать анимацию Stand 2 например в Spell. Или скопировать, чтобы не терять оригинал Stand 2.
Принудительно проиграть в триггерах анимацию по индексу анимации.
Видишь ли, если ты просто проиграешь анимацию Stand, то, если у юнита есть несколько таких анимаций (относится и к Attack 1/2/3), проигрывается случайная анимация. Однако у каждой анимации есть свой индекс, и можно с помощью jass проиграть нужную тебе анимацию. Но для этого тебе надо знать этот индекс.
Используй: call SetUnitAnimationByIndex(Твой юнит, Индекс ). Пример "call SetUnitAnimationByIndex(u, 2 )".
Я не знаю, как узнать индекс анимации с помощью программ. Обычно я проигрываю подряд все анимации от 0 до 10 и нахожу номер нужной.
Связать кости плаща с костями модели и можно будет обойтись без редактирования самой ее анимации в mldvis. Плащ будет тянуться к ней. Если не подойдет, то придется переделывать всю анимацию.
Способ №1
Открываем модель в вар3ме, находим в "Менеджере последовательностей" спикок анимаций, находим нужную, открываем ее параметры, запоминаем интервал (диапазон кадров), например Stand [3000-4333]. Далее в "Редакторе узлов" находим нужную кость по названию, нажимаем правой редактировать узел, и в повороте, переносе и масштабировании удаляем все строки, которые попадают в диапазон кадров этой анимации.
Способ №2
Открываем модель в mdlvis, нажимаем "модули->редактор анимаций", выбираем " анимки", выбираем нужную анимацию, переключаемся на вкладку "движение", выделяем нужную кость, на линейке кадров выбираем первый кадр и с шифтом последний таким образом, чтобы выделить всю линейку, удаляем сразу все точки на линейке.
Способ №3
Конвертируем модель в текстовый формат .mdl, открываем файл в блокноте, находим блок со списком анимаций, затем блок с поворотом, переносом и масштабированием нужной кости и проделываем аналогично способу №1, в начале каждого блока указано количество строк в нем, при удалении строк нужно менять это значение.
Используй вот это, чтобы вытащить UI, потом вот этим конвертируешь в нужный формат, чтобы открыть в PS.
Русскоязычных статей по созданию UI не нашёл, но если знаешь английский, вот ссылка.
Берем основную модель, возможно, вообще без мяса, только с гусеницами, но с кучей точек крепления. Также берем кучу моделей-аттачметов, представляющих собой эти самые пушки, корпуса и все прочее. При выборе характеристик модели через диалог или интерфейс соответственно создаем на основной модели эффекты-аттачменты, будет собрана техника. Такие штуки, как двигатель и прочие невидные извне элементы будут скорее входить в математическую модель юнита, но это также можно запилить. Название танка - сразу не скажу, есть ли триггер на смену, но на таблице рекордов можно отобразить что угодно.
2.Тоже можно.
Создаем погодный в определенной местности и делаем два триггера для контроля входа-выхода юнитов из нее. На искомых юнитов применяем нужные способности - и все готово.
Здесь чуть сложнее: нужно постоянно проверять тип местности под юнитом, но тоже можно. Проверка на ограждения тоже может бить сделана.
4.Это уже интереснее. Видел раньше подобное в играх. При каждой атаке юнита случайным образом наносим или не наносим доп. урон, эффект горения, кидаем спелл на цель в зависимости от теоретического места попадания атаки.
5.И это можно. Но нужно писать нестандартную систему Альянса. Но через триггеры и JASS все можно...
Продажа техники - лучше через способность, что бы кидать ее на понравившегося юнита, не стоит покупать кота в мешке. Стоимость должна зависеть от технического уровня юнита, его текущего состояния (мертвый танк попадет вам бесплатно, сами чините!), если он был модернизован дополнительно, то это тоже входит в стоимость. Разрешение на продажу делаем аналогично.
Это легко через Custom Value и переменние.
Как ты понял, все что ты предложил создать можно, но на это нужно потрать хороший кусок времени. Остается пожелать тебе удачи над созданием проекта - мне идея уже нравится.
Gerych, сюда тоже можно но вопрос будет закрыт через неделю с момента последнего ответа
ну а вообще для таких вещей стоит создать бложик и там в качестве ресурса подобное спрашивать
читай статьи
за тебя тут делать не будут
без того что в статьях ты ничего не поймёшь
для лучников нужна система отлова урона
для этого тебе надо как минимум выучить гуи
у катапульты просто повышай урон у осадного типа атаки
function MirrorCoords takes unit a returns nothing
local real x_a = GetUnitX(a)
local real y_a = GetUnitY(a)
local real x
local real y
if x_a < 0. then
set x = RAbsBJ(x_a)
else
set x = x_a - (x_a + x_a)
endif
if y_a < 0. then
set y = RAbsBJ(y_a)
else
set y = y_a - (y_a + y_a)
endif
call SetUnitX(a, x)
call SetUnitY(a, y)
endfunction
во первых .проверяем на ось Х, если меньше 0, то конвертируем функцией в противоположное значение, функция Absolute в гуи, иначе просто уменьшаем х на двойное значение самого себя
тоже самое по оси У
а затем просто присваиваем данные координаты
в гуи будет слишком криво, поэтому лучше скопируйте в шапку карты и вызывайте через кастом скрипт при покидании игрового региона
local rect R = //твоя область
local real x = GetRandomReal(GetRectMinX(R), GetRectMaxX(R))
local real y = GetRandomReal(GetRectMinY(R), GetRectMaxY(R))
Askarto,
Текстуры ландшафта находятся в файлах War3.mpq и War3x.mpq
в папке \TerrainArt\
Пример:
Распаковываешь \TerrainArt\Cityscape\City_GrassTrim.blp Перерисовываешь как надо, закидываешь в карту по этому же адресу. Город - Газон будет выглядеть так как нарисуешь :)
чтобы они ещё и окрашивали друг друга, по типу как вот здесь?
Вот это не понял.
Кто знает как накладывать текстуры друг на друга
Если это сделано средствами mdx, то тут в материале два слоя с разными текстурами. У верхнего режим фильтрации Transparent. Материалы можно редактировать через War3 Model Editor, модуль Material Manager. (Думаю, ты примерно знаешь, как =)
как импоритровать анимации мастера клинка в неё FAQ не помогло. Мне надо либо все движения перенести в модель либо только рук
Ну так не получится. Можно заменить скелет вместе с анимациями — это будет пересадка мяса. Или сделать анимацию с нуля — тут в помощь эта статья (только скелет создавать не придётся, он уже есть).
Если в текстуре есть все необходимые цвета, то можно скопировать точки и на карте текстур переместить их в правильное место. А потом сжать (не слить!) точки с разными текстурами, если требуется поместить их в одни координаты.
PhysCraft, читал, там очень мало написано, и совсем не то что я ожидал. В принципе я вроде смог прописать путь по папкам, сделал что бы играла музыка, в игре модели видно, но в редакторе нет, и как я теперь буду в редакторе ландить? Мне импорт для ландшафта нужен. Есть какой-то способ в редакторе тоже видеть?
Ни разу не делал карты "чисто стандартного жанра". Т.е. общий жанр определить можно всегда, но нужно чтобы можно было выделить что-то, чем твоя карта реально отличается от себе подобных.
Вот, глянь чуть (щас набегут хомячки с возгласами ОЛОЛО РЕКЛАМА ДОК БЛИН КАК НЕ СТЫДНА)
Все должно действовать, постоянно именно так и делаю. Триггер в студию.
P. S. Только одна оговорка: на всякий случай будет лучше, если способность, даваемая даммику, заранее будет присутствовать у какого-нибудь юнита на карте (можно нейтрального и/или не способного её скастануть), иначе иногда не исключены ситуации, когда даммик просто не кастует добавленную ему способность вообще (зависимость определить не удалось, абсолютно в одной и той же уже сохраненной и оптимизированной карте может кастовать, а может не кастовать - если не стал кастовать эту абилу в первый раз, то и всю игру - т. е. весь конкретный запуск конкретно этой карты - уже не станет, но добавлением абилы заранее нейтральному зданию, т. е. прелоадом, лечится надёжно).
не стоит использовать ждать
создаём для юнита целочисленную переменную time
1 триггер
Событие
периодическое событие - каждые 0.1 сек.-
Условие
time > 0
Действие
set time = time - 1
если time == 0 то понизить уровень способности "незаметность" для "герой" до 1
2 триггер
Событие
боевая единица - юнит атакован
Условие
Атакующий юнит=герой или Атакованный юнит=герой
Действие
set time=30
боевая единица - повысить уровень способности "незаметность" для "герой" до 2
не забудь закрыть вопрос (для этого выбери лучший ответ)
Ige, да о чем вы говорите. ИМХО, самое оптимальное предложение содержится в 3 комментарии.
И еще тут много лишних функций. Да и просто первый признак jass - отсутствие бж за исключением дебага( хоть мои слова кажется трепом и выпендрежем, но без чистого скрипта на нативах.... )
» WarCraft 3 / Как создать 3 снаряда
» WarCraft 3 / Пропадает модель при анимации
» WarCraft 3 / Как выбрать последнего юнита из группы?
» WarCraft 3 / Анимирование
» WarCraft 3 / Замена Cliff (клифов) на карте.
» Администрация XGM / Восстановление аккаунта
» WarCraft 3 / Как работает гандикап
» WarCraft 3 / Stand alternate не работает
» WarCraft 3 / Анимации
» WarCraft 3 / Как сделать юнита бродячим?
» WarCraft 3 / Анимация движения
» WarCraft 3 / Выбор улучшения
» WarCraft 3 / проблема, интерфейс
» WarCraft 3 / Как создать карту большего размера?
» WarCraft 3 / Как сделать рандомного юнита
» WarCraft 3 / Текстурирование
» WarCraft 3 / Импорт тайла
» WarCraft 3 / Предел юнитов на карте
» WarCraft 3 / Редактор анимаций
» WarCraft 3 / Отображение эффектов на юните
» WarCraft 3 / Повысить рельеф
» WarCraft 3 / Обновление таймера